package orm

import (
	"game/game-db/orm/metag"
	"time"
)

// orm说明
// 1、当tag作用于字段时
// 2、

type IDbEntity interface {
	IdGenerator() int64
	SetInsertTime(insertTime time.Time)
	SetUpdateTime(updateTime time.Time)
}

type IDefaultDbEntity interface {
	IDbEntity
	TableMetag() metag.TableMetag
}

type ISplitDbEntity interface {
	IDbEntity
	TableMetag() metag.SplitTableMetag
}

type DbEntity struct {
	insertTime time.Time `orm:"name=insert_time;comment=插入时间;readonly"`
	updateTime time.Time `orm:"name=update_time;comment=更新时间"`
}

func (t *DbEntity) SetInsertTime(insertTime time.Time) {
	t.insertTime = insertTime
}
func (t *DbEntity) InsertTime() time.Time {
	return t.insertTime
}
func (t *DbEntity) SetUpdateTime(updateTime time.Time) {
	t.updateTime = updateTime
}
func (t *DbEntity) UpdateTime() time.Time {
	return t.updateTime
}
func (t *DbEntity) IdGenerator() int64 {
	return 0
}
